This invention relates generally to input/output (I/O) processing systems, and more particularly to a system and method for facilitating use of commodity I/O components in a legacy hardware system.
Computer systems ranging from large-scale mainframe computers to personal desktop computers generally implement various types of peripheral or xe2x80x9cinput/outputxe2x80x9d (I/O) devices. Such I/O devices may include, for example, disk drives or disk arrays, tape drives, or other storage media drives. Disk drives as used herein includes any type of disk storage media, such as magnetic floppy or hard disks, CD-ROMs, DVDs, etc. Information may generally be written to, or read from any of these various types of storage components.
As storage technology forges ahead, storage media and respective drive technology is subject to continual change. While this is often tolerable in small-scale computing systems which can be easily upgraded or replaced, the impact on large-scale computing systems is often significant. A large-scale computing system may be designed for high-end, complex applications that are generally not intended for use on small-scale machines. These large-scale computing systems often come with proprietary or otherwise non-commodity hardware and software, including the operating system. As new I/O components are developed and new channel types are devised, the legacy computing systems may be ill-equipped to handle such upgrades without design changes, particularly in the operating system.
In prior art systems, the I/O component device drivers are associated with the operating system of the central processing system, where the operating system builds commands to provide to an I/O module to drive the channel. The operating system thus accounts for any physical attributes of the device being accessed. In this type of design configuration, a new channel results in a need for an operating system change. This requires substantial development efforts to introduce new devices and channels into legacy systems.
Accordingly, it would be desirable to provide for a manner of facilitating use of new, commodity, and/or otherwise unfamiliar I/O components in a legacy system. The present invention provides a solution to these and other problems of the prior art, and offers other advantages over prior art I/O processing techniques.
The present invention relates to a system and method for processing input/output (I/O) requests in a computing system. In accordance with one embodiment of the invention, a method is provided for facilitating use of input/output (I/O) components in a computing system. The method includes creating I/O packets via an operating system (OS) associated with the computing system, where the I/O packets include I/O transaction information. The I/O packets are made accessible to an I/O system. A command for a channel type connecting a target I/O component to the I/O system is constructed, where this command construction is based on the I/O transaction information provided in the I/O packet, and based on physical aspects of the target I/O component and channel type provided independently of the I/O packet. The constructed command is issued to the target I/O component in accordance with the channel type. In this manner, the OS does not need to know I/O component characteristics or channel types, which facilitates the development and introduction of new device and channel types to the existing system operating under the existing OS.
More particular features of such a method include making the I/O packets accessible to the I/O system by creating I/O request entries in a memory that is accessible to the I/O system for each of the I/O packets that have been created The I/O request entries may each include an address of its respective I/O packet. In another embodiment, the I/O system monitors a valid flag in each of the I/O request entries transferred, and identifies valid I/O request entries by monitoring a state of the valid flag. Another feature includes updating the I/O packet with status information after the constructed command has been processed by the target I/O component, and writing the updated I/O packet to a status queue.
In accordance with another embodiment of the invention, a method is provided for processing input/output (I/O) requests. The method includes creating I/O request packets via an operating system (OS) to perform corresponding I/O functions, such as read or write operations. I/O request packet entries corresponding to the created I/O request packets are entered onto an initiation queue. The I/O request packet entries that are successfully entered on the initiation queue are marked as valid entries. The initiation queue is polled for I/O request packet entries marked as valid entries. The I/O request packet corresponding to the I/O request packet entry is retrieved, and a device handler corresponding to at least an I/O request type and an device identifier (ID) provided in the I/O request packet is invoked. A command is constructed for a channel type for which a targeted device is connected. Constructing the command is based on at least the I/O request type and the device ID provided in the I/O request packet, and further based on physical aspects of the targeted device and the channel type provided independently of the I/O request packet. The constructed command is then issued to the targeted device to carry out the corresponding I/O function.
In accordance with another embodiment of the invention, an input/output (I/O) processing system is provided, where the I/O processing system includes a plurality of I/O components, and a plurality of device handlers each configured to drive commands to at least one of the plurality of I/O components. An initiation queue is coupled to receive I/O request identifiers from an operating system, where each of the I/O request identifiers includes an address of a corresponding I/O packet which includes I/O transaction information. An I/O manager is coupled to the initiation queue to receive the I/O request identifiers and corresponding I/O packets, and to invoke particular ones of the device handlers to drive the commands to targeted I/O components identified by the corresponding I/O transaction information. The I/O manager is configured to invoke the particular device handler based on the corresponding I/O transaction information provided in the respective I/O packet and on physical attributes of the targeted I/O components and channel types provided independently of the I/O packet.
In accordance with another embodiment of the invention, a system for facilitating use of input/output (I/O) components in a legacy computing system is provided. The system includes a legacy computing system utilizing an operating system (OS) responsible for generating I/O requests, an I/O processor, a logical interface coupling the legacy computing system and the I/O processor, and one or more I/O devices. The I/O processor includes a plurality of device handlers each configured to drive commands to at least one of the plurality of I/O components. An initiation queue is coupled to receive I/O request identifiers from an operating system, where each of the I/O request identifiers includes an address of a corresponding I/O packet which includes I/O transaction information. An I/O manager is coupled to the initiation queue to receive the I/O request identifiers and corresponding I/O packets, and to invoke particular ones of the device handlers to drive the commands to targeted I/O components identified by the corresponding I/O transaction information. The I/O manager is configured to invoke the particular device handler based on the corresponding I/O transaction information provided in the respective I/O packet and on physical attributes of the targeted I/O components and channel types provided independently of the I/O packet.
Still other objects and advantages of the present invention will become readily apparent to those skilled in this art from the following detailed description. As will be realized, the invention is capable of other and different embodiments, and its details are capable of modification without departing from the scope and spirit of the invention. Accordingly, the drawing and description are to be regarded as illustrative in nature, and not as restrictive.